import UIKit

extension SyntaxTheme {
    
    public static let dracula = SyntaxTheme(
        plainText: TokenType(color: UIColor(hex: "#F8F8F2"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        comment: TokenType(color: UIColor(hex: "#6272A4"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        keyword: TokenType(color: UIColor(hex: "#FF79C6"), font: .monospacedSystemFont(ofSize: 14, weight: .semibold)),
        string: TokenType(color: UIColor(hex: "#F1FA8C"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        type: TokenType(color: UIColor(hex: "#8BE9FD"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        number: TokenType(color: UIColor(hex: "#BD93F9"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        identifier: TokenType(color: UIColor(hex: "#50FA7B"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        customType: TokenType(color: UIColor(hex: "#8BE9FD"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        preprocessor: TokenType(color: UIColor(hex: "#FF79C6"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        url: TokenType(color: UIColor(hex: "#8BE9FD"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        attribute: TokenType(color: UIColor(hex: "#50FA7B"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        regex: TokenType(color: UIColor(hex: "#F1FA8C"), font: .monospacedSystemFont(ofSize: 14, weight: .regular))
    )
    
    public static let github = SyntaxTheme(
        plainText: TokenType(color: UIColor(hex: "#24292E"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        comment: TokenType(color: UIColor(hex: "#6A737D"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        keyword: TokenType(color: UIColor(hex: "#D73A49"), font: .monospacedSystemFont(ofSize: 14, weight: .semibold)),
        string: TokenType(color: UIColor(hex: "#032F62"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        type: TokenType(color: UIColor(hex: "#6F42C1"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        number: TokenType(color: UIColor(hex: "#005CC5"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        identifier: TokenType(color: UIColor(hex: "#24292E"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        customType: TokenType(color: UIColor(hex: "#6F42C1"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        preprocessor: TokenType(color: UIColor(hex: "#D73A49"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        url: TokenType(color: UIColor(hex: "#032F62"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        attribute: TokenType(color: UIColor(hex: "#22863A"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        regex: TokenType(color: UIColor(hex: "#032F62"), font: .monospacedSystemFont(ofSize: 14, weight: .regular))
    )
    
    public static let oneDark = SyntaxTheme(
        plainText: TokenType(color: UIColor(hex: "#ABB2BF"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        comment: TokenType(color: UIColor(hex: "#5C6370"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        keyword: TokenType(color: UIColor(hex: "#C678DD"), font: .monospacedSystemFont(ofSize: 14, weight: .semibold)),
        string: TokenType(color: UIColor(hex: "#98C379"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        type: TokenType(color: UIColor(hex: "#E5C07B"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        number: TokenType(color: UIColor(hex: "#D19A66"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        identifier: TokenType(color: UIColor(hex: "#E06C75"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        customType: TokenType(color: UIColor(hex: "#E5C07B"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        preprocessor: TokenType(color: UIColor(hex: "#C678DD"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        url: TokenType(color: UIColor(hex: "#61AFEF"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        attribute: TokenType(color: UIColor(hex: "#D19A66"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        regex: TokenType(color: UIColor(hex: "#98C379"), font: .monospacedSystemFont(ofSize: 14, weight: .regular))
    )
    
    public static let solarizedLight = SyntaxTheme(
        plainText: TokenType(color: UIColor(hex: "#657B83"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        comment: TokenType(color: UIColor(hex: "#93A1A1"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        keyword: TokenType(color: UIColor(hex: "#859900"), font: .monospacedSystemFont(ofSize: 14, weight: .semibold)),
        string: TokenType(color: UIColor(hex: "#2AA198"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        type: TokenType(color: UIColor(hex: "#B58900"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        number: TokenType(color: UIColor(hex: "#D33682"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        identifier: TokenType(color: UIColor(hex: "#657B83"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        customType: TokenType(color: UIColor(hex: "#B58900"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        preprocessor: TokenType(color: UIColor(hex: "#CB4B16"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        url: TokenType(color: UIColor(hex: "#268BD2"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        attribute: TokenType(color: UIColor(hex: "#859900"), font: .monospacedSystemFont(ofSize: 14, weight: .regular)),
        regex: TokenType(color: UIColor(hex: "#2AA198"), font: .monospacedSystemFont(ofSize: 14, weight: .regular))
    )
}
